home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 March - Disc 1 / Macworld (1999-03) (Disk 1).dmg / Shareware World / Graphics / 3D-Filmstrip / Documentation / ReadMe.txt < prev   
Text File  |  1998-11-24  |  51KB  |  979 lines

  1.  
  2.               Read Me File For 3D-Filmstrip 
  3.             Version 7.1.2  November 10, 1998
  4.             
  5.  
  6. A.)   WHAT IS IT?
  7.  
  8.   3D-Filmstrip is a tool that aids in the visualization of
  9. mathematical objects and processes. It runs under version 7 or
  10. later of the MacOS and requires a PowerPC cpu.
  11.  
  12.   3D-Filmstrip has algorithms for displaying mathematical objects from 
  13. many different "categories" (plane and space curves, surfaces, conformal
  14. maps, polyhedra, ODE, waves) and for displaying various mathematical
  15. processes associated with these categories. But 3D-Filmstrip provides
  16. content as well as viewing tools: each category has a "Gallery" of many 
  17. pre-programmed objects, as well as dialogs for entering User Defined 
  18. obects from the category. The Gallery items are selected from a menu, 
  19. while the user defined objects are entered by editing algebraic 
  20. expressions defining an object of the category.
  21.  
  22.    Filmstrip was designed and programmed (in Object Pascal) by: 
  23.    
  24.        Richard S. Palais
  25.        Department of Mathematics
  26.        Brandeis University
  27.        Waltham, MA 02254
  28.        palais@math.brandeis.edu
  29.        Home Page: http://rsp.math.brandeis.edu/
  30.  
  31.   The program is copyrighted, but there is a free license
  32. to use it for non-commercial purposes in education and research.
  33.  
  34.  
  35. B.) WWW and FTP Availability.
  36.  
  37.   3D-Filmstrip has a Home Page on the Web, at the URL:
  38.  
  39.    http://rsp.math.brandeis.edu/3D-Filmstrip_html/3D-FilmstripHomePage.html 
  40.   
  41. and the latest release and beta versions are available by anonymous ftp 
  42. at the URL:
  43.  
  44.  ftp://rsp.math.brandeis.edu/
  45.  
  46. (which has a link on the 3D-Filmstrip Home page).
  47.  
  48.   The ftp distribution includes documentation in html format. 
  49. It also includes many "settings" files that illustrate objects and 
  50. animations of special interest.
  51.  
  52. There are currently four mirror ftp sites for the distribution of 
  53. 3D-Filmstrip, in Europe, Australia, Taiwan, and Hong Kong. 
  54.  
  55. The URL's and site administrators are:
  56.  
  57. ftp://hensel.mathp6.jussieu.fr/dist/3D-Filmstrip/  
  58.  
  59.    Dominique Bernardi --- bernardi@math.jussieu.fr
  60.  
  61.  
  62.  ftp://maths.adelaide.edu.au/pure/mmurray/3DFilmstrip
  63. http://www.maths.adelaide.edu.au/Pure/mmurray/3DFilmstrip/3D.html
  64.  
  65.    Michael Murray ---  mmurray@spam.maths.adelaide.edu.au
  66.  
  67.  
  68. ftp://math.ntu.edu.tw/pub/mac/mirror.rsp  
  69.  
  70.    Ai Nung Wang --- wang@math.ntu.edu.tw
  71.    
  72.    
  73. ftp://ftp.math.cuhk.edu.hk/pub/mac/ 
  74.  
  75.    Law Wai Kuen (Keith) --- keith@math.cuhk.edu.hk
  76.  
  77. ------------
  78.  
  79. C) Documentation.
  80.  
  81.  The documentation for 3D-Filmstrip consists of:
  82.     1) This file
  83.     2) Hypertext documentation in html format, consisting of:
  84.         a) 3D-FilmstripHomePage.html
  85.         b) 3D-Filmstrip_Doc.html (a Table of Contents page)
  86.         c) IndexPage.html (an Index Page)
  87.         d) Many pages of html documentation with associated .GIF 
  88.         files.
  89.         
  90.   All of the above documentation is included with the standard ftp 
  91. distribution and in addition there is a link to an online version of 
  92. the html documentation starting from the 3D-Filmstrip Home Page.
  93.  
  94.   Much of the information in the above documentation can also be accessed 
  95. as Help panels while 3D-Filmstrip is running. These can be selected from 
  96. the Help menu.
  97.    
  98.   ====================================================================
  99.   
  100.    The remainder of this file is a version history, describing what 
  101. is new in the current version and what was new in earlier versions.
  102.  
  103.  
  104.                        Version History
  105.                        
  106. What's new in Version 7.1.2 beta of 3D-Filmstrip. November 10, 1998
  107.  
  108.    Added two-sided coloring of surfaces, and several new objects.
  109.  
  110. What's new in Version 7.1 beta of 3D-Filmstrip.        September 17, 1998   
  111.                     
  112.    Bug Fixes, and some new minimal surfaces. Costa-Hoffman-Meeks was added,
  113. and Chen-Gackstatter was modified to permit higher dihedral symmetries using
  114. a technique due to Hermann Karcher.                
  115.    
  116.                        
  117.                        
  118. What's new in Version 7.0 alpha of 3D-Filmstrip.       August 1, 1998
  119.  
  120.   Unlike the preceding few versions (in which the user interface changed
  121. very little and I added a lot of new content) in this new version, 7.0 
  122. Alpha, there is no new content but a fairly drastic change in the UI. 
  123. The two basic changes are a major reorganization of the menu structures, 
  124. and a fledgling "toolbar".
  125.  
  126.   The major trigger was a recent serious critique of the program by Angel
  127. Montesinos. He exercised its features pretty thoroughly, and found a number 
  128. of bugs, but more importantly made a case that the program interface 
  129. was getting too complex. After thinking hard about his specific comments, 
  130. I developed a plan for meeting his objections, and the attached version is 
  131. the result.
  132.  
  133.   Let's take up the toolbar first. Start up the program, create your
  134. favorite surface, and then choose "Show Toolbar" from the View menu
  135. (if you later want to hide it, choose "Hide Toolbar"). You will see
  136. four buttons on the toolbar, and there use should be obvious. The
  137. plan is to gradually put more and more controls in this toolbar (e.g.,
  138. buttons to change the background from black to white and back, to switch
  139. between color and stereo, etc.) but I didn't want to go very far in that
  140. direction without getting you opinions concerning whether it looks like
  141. a useful direction. The basic reasons for the toolbar controls are to 
  142. make their functions easier to access of course, but perhaps even more
  143. importantly to "put them out in the open" rather than hiding them in a
  144. menu. (However, anything in the toolbar will also be accessible from the
  145. menus too.)
  146.  
  147.   By now you will have noticed two things. First, the Main menu has
  148. become entirely a menu of Nouns (i.e., the names of all the various
  149. surfaces---and in other categories, the names of objects of those
  150. categories.) All the Verbs (Create, Show Parallel Surfaces, About This 
  151. Object..., About This Category...) have been moved into the new Action 
  152. menu, next to the Main menu. In addition, the Action menu also contains
  153. various Category dependent Verbs that used to be in the View menu (e.g.,
  154. Show All Gridlines, Show Associated Surface). This Action menu is made 
  155. up on the fly each time it is pulled down, and only contains those items 
  156. that are appropriate at that moment. 
  157.  
  158.   This more rigid separation of menus by the logical function of their 
  159. items is the key to making the program UI less chaotic and easier to 
  160. understand on the one hand, but also in making the program easier to 
  161. maintain and less fragile---or so I hope. Personally, I prefer this new
  162. menu structure (but that is a pretty biased view since I put a lot of 
  163. effort into programming it). I am very interested in hearing reactions
  164. from other users.
  165.  
  166.  
  167.  
  168. What's new in Version 6.6 of 3D-Filmstrip.             May 20, 1998
  169.  
  170.   Despite the gap in numbering (and time!), version 6.6 is the
  171. next public release of 3D-Filmstrip after version 6.2. There were
  172. a number of intervening special purpose versions, but these were
  173. not released for general distribution. 
  174.  
  175.   In the meantime, the program has undergone numerous changes and 
  176. additions. Unfortunately, the documentation has not kept pace. Like
  177. most developers, I find adding new features a lot more interesting 
  178. than documenting them. I am releasing this version now, before
  179. writing all the documentation I should, because the deadline is 
  180. fast approaching for the Math CDROM that will be distributed this
  181. summer at the ICM 98 in Berlin. I will try to make up for the lack
  182. of more formal documentation of the changes since version 6.2 with 
  183. a quick resume here.
  184.  
  185. 1) A great deal of time and effort has gone into testing, to find
  186. and eradicate hidden bugs. The program now seems more stable than
  187. ever before. I don't know any way to crash it, and I have run this
  188. version for many hours without any glitches. However I am very 
  189. aware that a program as complex as 3D-Filmstrip is bound to have
  190. many residual bugs that I have not aroused, but that other users,
  191. using the program differently than I do, will come across. PLEASE 
  192. if you find a problem send me email to palais@math.brandeis.edu
  193. telling me if you can the sequence of actions that give rise to
  194. the problem.
  195.  
  196. 2) I have reluctantly given up trying to support pre PowerPC
  197. Macintoshes. I know there are many excellent 680X0 machines out
  198. there, but I have access to very few of the many older models, 
  199. and I do not like to distribute a version without careful testing.
  200. The current 3D-Filmstrip would have been called 3D-Filmstrip(PPC)
  201. in the old nomenclature, and 3D-Filmstrip(FPU), the old Fat 
  202. 3D-Filmstrip, and 3D-Filmstrip(SANE) are no more.
  203.  
  204. 3) There are very many new pre-programmed examples in the various
  205. categories. In particular, check out the many new surfaces, and
  206. in particular the new minimal surfaces.
  207.  
  208. 4) Holding down the space-bar will now pause the program in all 
  209. cases where previously a command-period or a mouse-click would
  210. have aborted.
  211.  
  212. 5) In the Space Curve Category check out the menu items Show Tangent
  213. Developable, Show Repere Mobile, and Show Projection on XXX Plane.
  214. (These are best seen in stereo!)
  215.  
  216. 6) Courtesy of Bob Palais, the program now has code to do Fast Fourier 
  217. Transforms. This has made it possible to add many neat new features
  218. to the program. For example, in the Lattice Model Category, in Graphical
  219. Display, you will see the kinetic and potential energy in each normal
  220. mode in real time as the time evolution proceeds. And in the Wave Category
  221. there is now the capability to solve the initial value problem for KdV
  222. and Nonlinear Schroedinger (using a pseudospectral method due to Wineberg, 
  223. McGrath, Gabl, and Scott). Holding down 0ption-Command (or choosing
  224. Show Fourier Amplitudes from the menu) will show the frequency spectrum
  225. of the solutions. Note that these latter two additions make it possible 
  226. and easy for anyone to repeat the historic numerical experiments of 
  227. Fermi=Pasta-Ulam and of Zabusky-Kruskal (see my article, "The Symmetries
  228. of Solitons" in the October 1997 Bulletin of the AMS).
  229.  
  230. 7)  No program is an island. 3D-Filmstrip now has the capability to
  231. export its surfaces to MATLAB and to the ray tracing program POVRay.
  232. Also, surfaces created using MATLAB can be exported to 3D-Filmstrip.
  233. This is done using an interchange format called Surface Data files.
  234. These are created using the item Save Surface Data... in the File 
  235. menu (or an M-File in MATLAB), and they are read into 3D-Filmstrip
  236. using Read Surface Data... (and into MATLAB with another M-File).
  237. Christophe Favergeon Borgialli has written a converter program that
  238. takes a Surface Data file into a POVRay file. For full details, see 
  239. the ReadMe files in the three subfolders of the 3dfs Export/Import
  240. folder that comes with the standard 3D-Filmstrip distribution.
  241.  
  242. 8) Lots of nice new stuff in the Polyhedron Category.
  243.  
  244. 9) It is now possible to specify user surfaces parametrically using 
  245. polar spherical or cylindrical coordinates. Also there is a user 
  246. surface of revolution. Similarly, it is possible to define a user 
  247. plane curve parametrically in polar coordinates, and a space curve 
  248. in polar spherical or cylindrical coordinates.
  249.  
  250.  
  251.  
  252.                         ===========
  253.                        
  254.                        
  255.  
  256. What's new in Version 6.2 of 3D-Filmstrip.      November 15, 1996  
  257.  
  258.        (Version 6.2.2 of December 5, 1996 is a minor 
  259.        maintenace upgrade of Version 6.2. 
  260.        It fixes a bug in several of the
  261.        "User Defined..." dialogs that prevented them
  262.        from working properly after the first time.
  263.        It also fixes a serious bug introduced into the 
  264.        fpu version when I switched to a new compiler.)
  265.  
  266.   With this version of 3D-Filmstrip, the user interface has gotten a
  267. major facelift.  I would like to thank Mike Epstein and Xah Lee for
  268. pushing me to make these changes, and working very hard with me in
  269. the design and testing of the many new features.
  270.  
  271.    There are also important mathematical additions to the program---but 
  272. most were made by my collaborators, Christopher Anand and Angel Montesinos.
  273. Christopher considerably beefed up the Anand-Ward soliton segment of the 
  274. program, and added User Defined... solitons as well as documentation.
  275. I am very pleased with this example of one extreme in the spectrum of 
  276. applications I had hoped that 3D-Filmstrip would be useful for, namely 
  277. as a tool in advanced mathematical research. Angel extended his marvelous 
  278. algorithm for implicitly defined plane curves to also work for implicit 
  279. space curves, and I needed to make only minor adaptions for his code to 
  280. work within 3D-Filmstrip. I added routines for displaying geometric objects
  281. in the 3-Sphere. They are simply stereographically projected, and then
  282. treated like any other object in R^3. In particular you will now find
  283. the Hopf fibration in the Space Curve menu, and the Clifford torus in
  284. the Surface menu.
  285.  
  286.  
  287.   Here is a list of changes to the user interface:
  288.  
  289.  
  290. 1)  There is a new application icon (Mike Epstein helped with the design).
  291.      You may have to remake your desktop file to see it. (Have a look with 
  292.      your stereo glasses on).
  293.    
  294. 2)   Settings files and Grand Tour files now have their own distinctive icons,
  295.      and double-clicking will open them (after launching 3D-Filmstrip if it 
  296.      isn't already running).
  297.    
  298. 3)   Command-O = Open Settings File
  299.      Command-S = Save Settings 
  300.      Command-W closes Help Window and dialog windows
  301.      Command-U opens User Defined... dialogs
  302.     
  303. 4)   Cancel buttons have been added to dialogs.
  304.  
  305. 5)   Surface rendering now defaults to color.
  306.  
  307. 6)   Many changes to the View menu, to make it more intuitive for new users.
  308.  
  309. 7)   You can now omit the * for multiplication when writing expressions in
  310.      User Defined... dialogs (but remember to put in spaces to avoid ambiguity).
  311.    
  312. 8)   You can now also use "split definitions" in expressions, giving them different
  313.      values on different parts of the domains of their variables. The syntax is:
  314.    
  315.      case <condition> : <expression> ;  <condition> : <expression> ;  . . . end 
  316.      
  317.      For example:    
  318.  
  319.      case  x>0: ln(x);  x<=0: 1 end
  320.  
  321.      (The final ; is optional.) 
  322.     
  323. 9)   You can now signal a fast abort either with Command-period as before,
  324.      or by pressing the Escape key.
  325.     
  326. 10)  The "Virtual Sphere" button that used to inhabit the lower left 
  327.      hand corner of the screen is gone.
  328.  
  329.     That is because the program is now always in Virtual Sphere mode.
  330.     For example, after drawing a Surface you can immediately click on 
  331.     it and start rotating it. The rotation happens in wireframe by default, 
  332.     but if you put down Caps-lock it happens in patch mode (at reduced
  333.     resolution). Moreover if, while you are rotating, you hold down the 
  334.     Control key, the cursor changes to four arrows and you can now translate
  335.     the object in a plane parallel to the screen. If instead you hold down 
  336.     Shift, then the cursor changes to an up-down arrow and you can "zoom" the
  337.     object toward or away from you. In essence, you can move along an arbitrary  
  338.     path in the Euclidean group, and have the object "follow along". 
  339.  
  340.     The same thing works in the Plane curve and Conformal map categories,
  341.     except the default movement is translation instead of rotation. Morever,
  342.     in these two categories, if you hold down Command and then drag out a
  343.     rectangle in the usual Mac way, then when you release the mouse (with
  344.     Command still down) your selection rectangle will zoom to the entire 
  345.     window.
  346.     
  347. 11) There used to be a special version of Virtual Sphere mode in which 
  348.     an object spins about an axis that you could change interactively by 
  349.     rotating it with the mouse. The old way of entering that mode was by
  350.     putting Caps-lock down before clicking on the Virtual Sphere button,
  351.     and you stayed in that mode until the Caps-lock key was released.
  352.     This has now been renamed to Spin mode. You enter it by selecting
  353.     Spin at the bottom of the Animate menu, and exit it by fast abort
  354.     (i.e., either Command-period or Escape).  For surfaces, the spin will 
  355.     be in wireframe if Caps-lock is up and in Patch mode if it is down.
  356.     
  357. 12) If you are connected to the Internet and have the System Extension 
  358.     Internet Config installed in your Extensions Folder, then you will 
  359.     have two extra items at the bottom of your Balloon Help menu when 
  360.     3D-Filmstrip is active; namely "Download Latest Version" and 
  361.     "3D-Filmstrip Home Page". Of course, for these to work, you must have
  362.     available an ftp program (such as Fetch or Anarchie) and a Web Browser 
  363.     (such as Netscape Navigator) and you must have chosen one of each as
  364.     your preference using the Helper Dialog of the Internet Config program.
  365.  
  366.  
  367.                         ===========
  368.  
  369. What's new in Version 6.1 of 3D-Filmstrip.      June 1, 1996                       
  370.   
  371.  
  372. 1)  NEW ABOUT BOX.
  373.  
  374.     The clunky old About Box has been replaced by one that
  375.     is "way cool".
  376.  
  377. 2)  SPEED TEST.
  378.  
  379.     As the program starts up it does a speed test, and 
  380.     gives the result in the Graphics Window title-bar.
  381.     The speed is a rather arbitrary number obtained by
  382.     seeing how fast the cpu can complete a certain mix 
  383.     of operations. It is normalized to come out about 
  384.     one for a Powerbook 180, and a speed of say 5.5
  385.     means that a machine completed these operations
  386.     five and a-half times as fast. The idea is not to 
  387.     establish bragging rights---rather it will be used
  388.     slow down various processes that would otherwise run 
  389.     too rapidly on very fast cpu's.
  390.     
  391.     [ NOTE! The display (but not the speed test was removed
  392.       in version 6.2.]
  393.  
  394.  
  395. 3) ADDITIONS TO FILE MENU.
  396.  
  397.     There are several changes to the File menu. First two trivial
  398.     changes:  Open...  has ben changed to Open Settings... and Save... 
  399.     has been changed to Save Settings... . More important are several
  400.     new items:
  401.  
  402.       a) PRINTING THE GRAPHICS WINDOW.
  403.  
  404.          There is a new item, Save Window as PICT file...
  405.          This is in response to a request from many users
  406.          to have an easy method to  print the contents of 
  407.          the Graphics Window. It seemed like overkill to put 
  408.          in all the code that a real print dialog would entail, 
  409.          so I chose something easier for me and I expect better
  410.          for the user. Essentially every Macintosh graphics 
  411.          program (and even Simple Text!)  can open and print
  412.          a PICT file. Moreover, by using a graphics program 
  413.          you can  do some minor editing  before printing (e.g., 
  414.          remove the window controls, add labels, etc.).
  415.        
  416.        b) 3D-FILMSTRIP NOW DOES QUICKTIME!
  417.  
  418.           There is a new item, Save Animation as Movie...
  419.           Again, this was suggested by many users and has
  420.           many advantages (and one drawback). The drawback 
  421.           is that a QuickTime movie can take a fair amount of 
  422.           disk space. (But not as much as I originally feared, 
  423.           several will fit on a 1.4 MByte floppy, and when I
  424.           learn more about compression I can probably do better.)
  425.           Two of the advantages that I feel are among the most 
  426.           important are:
  427.  
  428.              1) a movie starts playing almost immediately, whereas 
  429.                 to recreate an animation from the Settings on a  
  430.                 settings file can take many minutes.
  431.  
  432.              2) a movie can be easily converted (e.g., with  
  433.                 MoviePlayer) to a format transportable to UNIX 
  434.                 machines or Windows  machines (having the 
  435.                 QuickTime_for_Windows application). 
  436.  
  437.         c) PLAYING BACK A QUICKTIME MOVIE.
  438.  
  439.            There is also a new item Open Movie... item. This brings up
  440.            a dialog that will permit you to open any QuickTime movie
  441.            with a very basic controller. It is not meant as a substitute
  442.            for MoviePlayer or one of the other many good QT movie editors
  443.            and players, but rather to give the user a quick way to check
  444.            a movie just produced using the previous item. When you open
  445.            a movie there will be a new Movie menu added to the menubar
  446.            control looping, and decide whether to play at a fixed rate 
  447.            or play every frame. (At the moment you must keep pressing 
  448.            the forward button as long as you want the movie to play.)
  449.  
  450. 4) INITIALIZING MORPHING PARAMETERS.
  451.  
  452.    The Set Morphing... dialog has a new button, "Init to current parameters"
  453.    that will set all the morphing parameters to the current value of the
  454.    corresponding parameters (i.e., aa0 and aa1 will be set equal to aa, etc.,
  455.    and umin0 and umax0 will be set equal to umin etc.).  Again, this was by
  456.    popular request.
  457.  
  458.  
  459. 5) MANY NEW FEATURES IN PLANE CURVE AND SPACE CURVE MENUS.
  460.  
  461.    I had been working so long improving the Surface category that the
  462.    two curve categories were beginning to look pretty weak and dull by
  463.    comparison. They are now a lot more interesting (and fun).
  464.  
  465.       a) IMPLICIT PLANE CURVES
  466.  
  467.          The program now can handle implicit plane curves (I use a 
  468.          very neat algorithm of Harley Flanders). There are several
  469.          classic implicit curves in the menu and there also is a
  470.          User (implicit)... menu item.
  471.  
  472.       b) SHOW PARALLEL CURVES
  473.  
  474.          There is a Show Parallel Curves... item in the Plane Curve menu.
  475.          This first draws the normals to the curve from the curve to the
  476.          "focal point" (i.e., to the the center of the osculating circle).
  477.          The normals are then erased, but the evolute remains while
  478.          the parallel curves get drawn in real time animation. The speed
  479.          of the animation can be changed with the right and left arrow
  480.          keys, and the direction can be changed witht the up arrow key.
  481.  
  482.       c) GENERALIZED CYCLOIDS
  483.  
  484.          You can now draw "generalized cycloids" by rolling a circle of 
  485.          any radius on any parametric plane curve. The radius of the 
  486.          rolling circle is the parameter gg, and the sign of gg determines 
  487.          which side of the curve the circle rolls on. The parameter ii
  488.          determines which  point along the radius of the rolling circle 
  489.          draws the "cycloid" (if ii = 0 it is the center of the circle,
  490.          if ii = 1 it is the point of contact, if ii = -1 it is the point
  491.          on the rim opposite the contact point, etc.). Finally, if the
  492.          curve is closed and hh is NOT equal to zero, then the value of  
  493.          gg is"rounded" to the nearest value that makes the length of the 
  494.          circle go evenly into the length of curve (so the cycloid repeats
  495.          exactly after one time around). If after drawing one cycloid
  496.          and changing parameters you hold down the shift key as you select
  497.          Draw Generalized Cycloid, previous cycloids will not be erased 
  498.          before the next one is drawn.
  499.                    
  500.         d) SHOW OSCULATING CIRCLES
  501.  
  502.            After creating a parametric plane curve you can show its
  503.           osculating circles as a real time animation. The osculating 
  504.           circles are drawn in blue, and the centers leaves behind a 
  505.           trace of the evolute as the circle moves along the curve. 
  506.           (If you hold down the Control key as you select Show 
  507.           Osculating Circles, the radii of the osculating circles 
  508.           are first drawn in red and remain on the screen.)
  509.  
  510.         e) SHOW SPACE CURVE AS TUBE
  511.  
  512.            The Space Curve menu now has a Show as Tube item. By the way, 
  513.            while I generally prefer to see surface and space curves in 
  514.            stereo, tubes around space curves are an exception, and I find
  515.            turning on color works best. Parametrizing a tube requires the
  516.            construction of a framing of the normal bundle, and there are
  517.            two obvious choices: the Frenet frame and the the parallel frame
  518.            (obtained by choosing an arbitrary initial frame and using
  519.            parallel translation in the normal bundle to propogate it along 
  520.            the curve). There are menu choices to switch between these two
  521.            framings.
  522.  
  523.            The radius of the tube is given by the parameter ii. The 
  524.            resolution along the length of the tube is just t Resolution
  525.            of course, and the resolution around the tube is u Resolution, 
  526.            but is called "Resolution around the tube" in the Set Resolution & 
  527.            Scale... dialog when Show as Tube is checked. By default the 
  528.            resolution around the tube is set at 4 (giving a square 
  529.            cross-section to the tube) since I feel that displays the 
  530.            framing best, but if you prefer round tubes you can set the
  531.            resolution around the tube as high as 18.
  532.            
  533.            
  534.  
  535. 6)  SHOW PARALLEL SURFACES.
  536.  
  537.     The Surface category was not completely neglected. There is now an
  538.     item "Show Parallel Surfaces" in the Surface menu (it works only
  539.     for parametric surfaces for now). It first draws the two focal sets
  540.     of the surface (corresponding respectively to the smaller and larger
  541.     principal curvatures) then erases these and shows a real time animation
  542.     of the parallel surfaces in wireframe. (If you hold down the shift 
  543.     key, you will see the focal surface for as long as it is held down).
  544.     The speed of the animation can be changed with the right and left arrow
  545.     keys, and the direction can be changed with the up arrow key.
  546.     
  547.  
  548.                         ===========
  549.                        
  550.                        
  551. What's new in Version 6.0 of 3D-Filmstrip.      February 7, 1996
  552.                        
  553.                        
  554.  Major New Features.
  555.    
  556.   1)  I spent ten days in Bonn in December working with Hermann
  557.     Karcher to finish (at least for now) the display of minimal
  558.     surfaces directly from their Weierstrass data. The material
  559.     in this portion of the program is by far the richest and most 
  560.     sophisticated numerically, mathematically, and visually. It
  561.     serves as an ideal that I hope the other mathematical categories 
  562.     in the program will eventually approach. I should stress again 
  563.     that Karcher is almost entirely responsible for the algorithms, 
  564.     and I have served mainly to write these algorithms in Pascal and
  565.     interface them with the graphical display capabilities already
  566.     built in to 3D-Filmstrip. I warmly recommend your browsing in
  567.     this section (the lower part of the Minimal Surface menu). In
  568.     particular, choose Wavy Enneper, switch to Filmstrip animation,
  569.     and do a cyclic morph (in stereo vision of course!).
  570.     
  571.   2)  There is now a native PowerPC version of the program. I believe
  572.     that it is dependable, but I have not been able to test it with
  573.     anywhere near the thoroughness of the versions compiled for the 68K
  574.     Macs. Since I do not own or have access to a PowerMac on which I can 
  575.     load my debugging and quality assurance software, my ability to
  576.     test it myself is limited, so I would greatly appreciate it if
  577.     those of you with PowerMacs would send me reports of any anomalous
  578.     behavior.
  579.        By the way, even on the slowest of PowerPC's (a 60 MHz 601)
  580.     the native version runs about five times as fast as the FPU version 
  581.     runs on the fastest of the 68K Macs (my Quadra 840 AV, which has a 
  582.     40MHz 68040).
  583.       
  584.   Other Changes.
  585.     
  586.   3)   Virtual sphere mode now works a little differently. After 
  587.      clicking on the virtual sphere control, you have three seconds
  588.      to press the mouse button again, to start rotating the object
  589.      (otherwise you leave virtual sphere mode). After you rotate the 
  590.      object and release the mouse button, the object redraws (unless you 
  591.      press option while releasing the mouse) and then stays in virtual 
  592.      sphere mode for three more seconds, allowing you to rotate further. 
  593.      (During the three second delay, touching Command will drop you out 
  594.      of virtualsphere mode instantly).  
  595.      
  596.    
  597.    4)   Now almost any drawing operation that takes more that a few seconds
  598.      to complete can be aborted with Command Period (holding down the mouse 
  599.      button also usually does it too).
  600.       
  601.       
  602.    5)  If you hold down the Control key while a surface is being drawn, the
  603.       normal field to the surface will also be shown.
  604.       
  605.       
  606.    In addition there has been the usual complement of bug fixes and minor
  607. improvements.
  608.  
  609.                         ===========
  610.  
  611. What's new in Version 5.3 of 3D-Filmstrip.      October 10, 1995
  612.  
  613.   While versions 5.1 and 5.2 mainly improved the infrastructure
  614. and user interface of 3D-Filmstrip, this update has concentrated 
  615. on improving the documentation and adding new mathematics. 
  616.  
  617.    The items "Pascal Code..." and "Texplanation..." in the main menus
  618. have been replaced by two new items, "About this Category...", and 
  619. "About this Object...".  The latter of these is the real replacement
  620. for the former two. It is the place to look for the formulas that 
  621. describe an object, and to see how an object depends on various
  622. parameters. Eventually (and gradually) I will add further comments 
  623. of a descriptive nature to these items. As of now, the latter has been
  624. carried out only for the minimal surfaces given by their Weierstrass 
  625. data, and I have Hermann Karcher to thank for writing the text for 
  626. these items. For the most part, "About this Category..." is the just 
  627. the descriptive material about a particular category that used to be 
  628. under the Help menu. 
  629.  
  630.   But the really exciting new addition is mathematical. 3D-Filmstrip 
  631. now is able to create a minimal surface directly from its Weierstrass 
  632. representation. This is the result of several weeks of concentrated 
  633. joint effort by Hermann Karcher and myself. The algorithms and the 
  634. remarkably fast and efficient numerical methods are almost entirely 
  635. due to Karcher, and my contribution to the collaboration was mainly to 
  636. interface Karcher's algorithms with the graphical display algorithms 
  637. that are built into 3D-Filmstrip.  Using this technique, it is now 
  638. possible to show the many new and beautiful examples of minimal surfaces 
  639. that have been discovered in  recent years by Chen-Gackstatter, Costa, 
  640. Hoffmann, Karcher, Meeks, Rosenberg, Wei, et. al. However, for most 
  641. of these surfaces, the complete presentation is a multi-step process. 
  642. They have a number of discrete symmetries, and after a fundamental 
  643. domain has  been created by integrating the Weierstrass data, the rest 
  644. of the surface must be created by reflecting and rotating this piece. 
  645. So far we have carried this out for the Riemann, Chen-GackStatter, 
  646. and Costa surfaces (in wireframe). Eventually, in a later version, 
  647. it will also be carried out for the remaining pre-programmed 
  648. Weierstrass-type minimal surfaces, and it will also be possible 
  649. to view the whole surfaces in patch-mode as well as in wireframe.
  650.  
  651.  
  652.    If you want to see a very pretty animation, go into stereo mode,
  653. choose Wavy Enneper from the Minimal Surface submenu of the Surface
  654. Menu, choose Filmstrip animation from the Animation type menu, and 
  655. then choose Cyclic Morph from the Animation menu (it will take a few
  656. minutes).
  657.                         ===========
  658.  
  659. What's new in Version 5.2 of 3D-Filmstrip.      July 3, 1995
  660.  
  661.   There have been a number of small bug-fixes. In particular, for 
  662. 3-dimensional ODE, direction fields were not scaling properly, and
  663. the Show as Graph item in the Soliton main menu was not working 
  664. correctly for solutions of the Sine-Gordon equation. (I still have
  665. not got it right for the Breather solution).
  666.  
  667.   There is now a Set Monitor submenu of the Settings menu. It looks
  668. (and works) just like the Monitors Control Panel, but please use this
  669. instead, so the program will know immediately about any change you 
  670. make and take appropriate steps to optimize colors. If you should use 
  671. the Monitors Control Panel, the program will eventually figure it out.
  672. By the way, I've added a new palette, and stereo now works pretty well at the sixteen colors setting, so if memory is low and you want stereo but no colors, try shifting to sixteen colors. Any change made using 
  673. the Set Monitors menu will be reversed when you quit 3D-Filmstrip.
  674.  
  675.   First order ODE in one variable now show direction fields by default.
  676.  
  677.   You will notice that now there is a one or two digit number just above
  678. the size control box on the lower right of the Graphics Window. This is 
  679. the maximum number of frames you can have in a Filmstrip with the current window size and monitor setting. If you want more frames, make the window smaller---BUT see the next item. (By the way, if you are using virtual memory, or RAMDoubler, there is no way the program can tell, so if you try using the maximum number of frames, the playback 
  680. of the Filmstrip  will slow to a molasses-like pace as some frames 
  681. are cached to disk.)
  682.  
  683.   There is now a choice of two kinds of animation, the old "filmstrip"
  684. type, and a new "real-time". You choose between them using the
  685. "Animation Type" submenu of the Animate menu. For real-time animation,
  686. which is now the default, each "frame" is created on the fly, as needed. 
  687. By a little hard work and a few tricks I was able to finally get this 
  688. working fast enough to be quite acceptable on most recent machines, 
  689. except that for Surfaces in "patch" mode it is still too slow, so the 
  690. program shifts temporarily to wire-frame during real-time animation 
  691. of surfaces. I expect to have a version of 3D-Filmstrip running native 
  692. on PowerPC Macs within six months, and I am hoping that the speedup 
  693. will be enough that (perhaps with a little more hard work) even patch 
  694. surfaces will draw fast enough to work in real-time, and this change 
  695. is to prepare for that. By the way, the advantage to real-time animation 
  696. over filmstrip animation is that a filmstrip with more than a few frames 
  697. requires gobs of RAM. (Also, you don't have to wait while the program 
  698. makes up the filmstrip.)
  699.  
  700.   For ODE in one-variable and first order ODE in two variables, I 
  701. have implemented the display of direction fields for time-dependent equations. All of the pre-programmed equations are autonomous, so if 
  702. you want to see this in action choose User Defined..., and either use the default or enter your own time-dependent equation. I have not seen this in other ODE programs, and I would appreciate it if anyone who has would let me know.
  703.  
  704.   The Lattice Model category now has a User Defined item, so you can 
  705. experiment with your very own lattice models.
  706.  
  707.    I've found another nice use for the Virtual Sphere algorithm. If you
  708. depress the Shift Lock key before clicking on the Virtual Sphere control
  709. button (in the lower right of the screen) the program will enter a
  710. different version of Virtual Sphere mode. In this version, the rotation
  711. axis will be visible, and when you rotate the virtual sphere with the mouse, the 3D object will stay fixed, but the rotation axis will rotate
  712. with the sphere. If you release the mouse button, the object will start 
  713. rotating about the new axis, and continues rotating until you again depress  the mouse button and start rotating the axis. You can keep alternating these two phases as long as you like, and then release the shift lock to leave virtual sphere mode. (At this point the object will be redrawn in  its final rotated position, and the rotation axis is fixed at its final position.) Needless to say, while this does not require being in stereo mode, it isn't too useful without it.
  714.  
  715.  
  716.   In the six ODE categories, an ODE control panel now opens by default
  717. just below the Graphics Window. This has buttons to do more easily 
  718. things you could  do with the menus (Create, Erase, Continue, double or
  719. half the scale, and bring up the dialog to set initial conditions, 
  720. step-size, time-span, and dottedness. In addition there are buttons for
  721. single-stepping the ODE forward or backward, and there is a read-out of 
  722. the current time, position, and velocity.
  723.  
  724.  
  725.                         ===========
  726.  
  727. What's new in Version 5.1 of 3D-Filmstrip.      May 23, 1995
  728.  
  729.    This is again a substantial update to the program with two major 
  730. new features. One is very visible and the other, while more hidden,
  731. make the program a lot easier to use.
  732.  
  733. 1)   The Virtual Sphere algorithm has been implemented.
  734.     For the Surface, Space Curves, and Polyhedra categories, after an
  735.     object is selected, a button will appear at the lower left corner 
  736.     of the graphics window.  If you click on this button then a circle
  737.     appears on the screen surrounding the object. The object has now 
  738.     become temporarily  embedded in a transparent hard plastic sphere 
  739.     (called the virtual sphere) that is centered at the screen center. 
  740.     The  circle you see is the diameter given by intersecting the screen
  741.     and the virtual sphere. Place the cursor anywhere on the top surface 
  742.     of the virtual sphere and drag the sphere to rotate it, carrying 
  743.     the object along with it. (For speed, a surface will be shown in
  744.     wire-frame style as you drag it). When you release the mouse, the 
  745.     object will now be drawn in its final position. If you hold down the 
  746.     Control key while in virtual sphere mode, then you will see a little 
  747.     piece of the tangent
  748.     plane at the point where the virtual sphere is being grabbed---this can
  749.     help during the time you are learning to use the technique. If you hold 
  750.     down both option and command as you release the mouse button while in 
  751.     virtual sphere mode you will stay in virtual sphere mode and the object 
  752.     will not be redrawn---this allows you to move the mouse to a different 
  753.     point to make it easier to turn the sphere as you wish.
  754.  
  755. 2) The ugly opening dialog for choosing the size of the graphics window and
  756.    the maximum number of frames in a filmstrip is now a thing of the past. 
  757.    The graphics window is created with a certain aspect ratio, and as large
  758.    as memory will allow (up to a certain maximum). Moreover it is now 
  759.    resizeable at any time, and any object drawn in it will be rescaled to 
  760.    the new window size. Frames for a filmstrip are created (and destroyed) 
  761.    automatically on as as needed basis. These two changes are a reflection 
  762.    of a major rewriting of the memory management infrastructure of the 
  763.    program. While earlier versions of the program set up all necessary data 
  764.    structures when the program was launched and kept them around until 
  765.    quitting time, in this version larger structures are created when needed 
  766.    and destroyed when the current need for them has passed. This has led to 
  767.    a drastic reduction in the size of the memory partition required to run
  768.    the program. While earlier versions needed at least a three megabyte
  769.    partition, version 5.1 can run in as little as 1200 Kilobytes. (The
  770.    preferred size should be set at 2500 K, or higher if you have a big
  771.    monitor and like to have large windows.)
  772.  
  773.   Also, in the ODE categories, the division of the graphics screen into
  774.   two panes (the top showing orbits and the bottom orbit projections on
  775.   the axes) is now under user control. The division of the graphics 
  776.   window into these two panes is adjusted as follows. There is a 
  777.   rectangular button at the right edge of the screen where the two 
  778.   panes meet. If you press on this button, the button itself will
  779.   disappear and be replaced  by a horizontal line. Drag the horizontal
  780.   line to where you would like the new boundary between panes and
  781.   release the mouse. (At least twenty percent of the total screen 
  782.   height must be devoted to each pane.)
  783.  
  784.                         =============
  785.  
  786. What's new in Version 5.0 of 3D-Filmstrip.      March 15, 1995
  787.  
  788.  
  789.    This is a fairly substantial update. The previous publicly available
  790. version (4.6) was made available last October, and in the six months 
  791. since then I have been working hard to improve the program. (It now runs 
  792. to over 35,000 lines of Pascal source code.) 
  793.  
  794.   There has been the usual quota of bug fixes---hopefully not balanced 
  795. by newly introduced glitches---but in addition two major new features 
  796. (and many minor ones) have been added.
  797.  
  798.    Perhaps the most notable of these is the option to display surfaces
  799. and polyhedra in color, using a combination of colored light sources and
  800. (in the case of surfaces) surface coloration. The latter is controlled 
  801. by a submenu menu near the bottom of the Surface menu. This has several
  802. items, including a "User Defined..." option that brings up a dialog
  803. permitting the user to separately specify the hue, saturation, and 
  804. brightness of each point on the surface as functions of the two surface
  805. parameters u, and v. 
  806.  
  807.   There are five "light sources", called Source0, Source1, Source2, 
  808. Source3, and Ambient Source. All five can have their colors set by 
  809. the user. The light rays of Source0 always travel in the viewing 
  810. direction (i.e., in the direction from Viewpoint towards ScreenCenter), 
  811. the light rays from AmbientSource are "omni-directional", while the 
  812. directions of the light rays of Source1, Source2, and Source3 can 
  813. be set by the user. For each directional source, its light rays are 
  814. all parallel to a fixed direction---as if the source were "at infinity".
  815. There is a Set Light Sources submenu of the Settings menu to control
  816. the nature of the light sources. This has several preset combinations
  817. as well as a Custom... item that brings up a dialog for setting the
  818. parameters for all of the sources by hand. See the Color item in the 
  819. Help Menu, or the section on color in the documentation file, for more 
  820. details, and in particular a discussion of how the surface color and the
  821. color and direction of the light sources determine the observed color of
  822. each surface patch. I have now switched to Phong shading of surfaces. 
  823. This means that in addition to diffusely scattered light reflecting off 
  824. the surface, there is now also a specular (i.e., mirror-like) component
  825. that adds highlights and gives a more realistic appearance to surfaces.
  826. See the section on Phong shading in the TeX documentation to see how
  827. the two parameters, Specular Exponent and Specular Ratio, determine the
  828. characteristics of the specular component of reflected light. These two
  829. parameters can be changed from their default values using the Custom...
  830. dialog of the Set Light Sources submenu.
  831.  
  832.    A second major addition is a much richer implementation of ODE's.
  833. Whereas earlier versions only had first order ODE's in two and three
  834. variables, now there are six separate categories for first and second
  835. order systems ODE's in one, two, or three dimensions. Also, the option
  836. has been added to see the direction field associated with a first order
  837. ODE, and to see the projections of orbits of an ODE on the coordinate
  838. axes.In addition to the special Central Force ODE category, I have
  839. now added a second special ODE category called Lattice Models. This
  840. shows the solutions of the equations of motion for a one dimensional
  841. lattice of anharmonic oscillators with nearest neighbor interactions.
  842. See the TeX documentation for more details. (This category is still
  843. experimental and under development, so I would particularly appreciate
  844. comments and suggestions concerning it.)
  845.  
  846.    There are four new submenu items in the View menu: "Background", 
  847. "Visible Gridlines?", "Project ODE Orbits?", and "Show Direction Fields?".
  848. Each brings up a two-item submenu: White/Black in the first case and 
  849. Yes/No in the others. 
  850.  
  851.   Except for the Conformal Map  category, the default background is white 
  852. and objects are drawn in black (or color).  Choosing White from the
  853. Background menu will change the background to black, and objects will be 
  854. drawn in white (or color). This new background will remain chosen until 
  855. it is either explicitly changed back, or a new category is chosen using 
  856. the Settings menu Set Category...item. 
  857.  
  858.    The Visible Gridlines? submenu refers only to the Surface category. 
  859. Choosing No from the Visible Gridlines? submenu will turn off the 
  860. display of the u,v coordinate curves when a surface is redrawn (except, 
  861. of course, in wire-frame display mode!). While this option is available 
  862. in monochrome, it is rarely advisable in that situation, and should be 
  863. reserved for (occassional) use when displaying a surface in color. It
  864. is also useful in stereo when the specular component of reflected light
  865. has been emphasized.  (For example, with Specular Exponent set to 60 
  866. Specular Ratio equal 0.6, and no gridlines, a surface has the appearance
  867. of polished ivory---for best results, set the u and v resolutions high.)
  868.  
  869.    The "Project ODE Orbits?", and "Show Direction Fields?" submenus 
  870. refer only to the ODE category. In any of the ODE categories (except
  871. for a first order equation in one variable) the main display shows
  872. the evolution of an orbit in the phase space. By default, the program
  873. also shows projections of the orbit on the various coordinate axes
  874. (using different colors to distinguish the projections). This display
  875. occurs in a second pane of the graphics window that opens automatically
  876. below the main pane. This pane can be hidden with the Project ODE Orbits?
  877. submenu. For a first order ODE category in two variables and a second
  878. order ODE in one variable  the program by default displays the direction 
  879. field of the vector field defining the ODE. (If the vector field is time
  880. dependent, then it is shown at time zero). The display of the direction
  881. field can be turned off with the Show Direction Fields? submenu.
  882.  
  883.    There is another new feature of the View menu: choosing an item 
  884. will by default trigger an immediate redraw of a selected object. 
  885. By contrast, changing some settings by calling up a dialog using the 
  886. Settings menu does not cause a redraw until Create is chosen from the 
  887. Main menu. While these seem to be the default behaviors preferred by 
  888. the majority of users, some users prefer a delayed redraw with the 
  889. View menu too---it is a little annoying to have to sit through long 
  890. redraws if one is making several successive changes with the View menu. 
  891. So I have implemented an option to inhibit an immediate redraw by holding 
  892. down the option key while making a choice from the View menu. In fact, 
  893. this function of the option key has been generalized to also prevent 
  894. the immeditate drawing of an object in other circumstances when it 
  895. would otherwise occur. For example, when choosing a new item from the 
  896. Main menu, hold down the option key if you would like to make several 
  897. adjustments using the View and Settings menus before the new object 
  898. gets drawn.
  899.  
  900.   The way that the speed of playback of a filmstrip is adjusted has
  901. been completely changed. The program controls the playback speed by
  902. adding a certain number of "ticks" (i.e., sixtieths of a second) 
  903. between successive frames. This number can vary between zero, its 
  904. initial value when the program starts up, to thirty. Note that with
  905. thirty ticks between frames, even a machine capable of instantaneously
  906. drawing each frame would only display two frames per second. In 
  907. prior versions, to slow down or speed up the playback (i.e., to add 
  908. or subtract ticks) it was necessary to stop the playback and then
  909. choose Slower Playback or Faster Playback from the Animation menu.
  910. These menu items have been removed, and now to change the playback
  911. speed while a filmstrip is being played back, press the right-arrow 
  912. key ( ---> ) to add ticks, or the left arrow key ( <--- ) to subtract
  913. ticks. One tick is added or subtracted if the delay between frames 
  914. is less than ten ticks, and five if greater.)  During playback, a 
  915. "status line" is added to the bottom of the graphics window giving 
  916. the current number of ticks added between frames. By the way, once 
  917. this number is set it will remain fixed until quitting time unless 
  918. it is reset by the user.
  919.  
  920.    When a filmstrip is played back and then stopped with a Command
  921. Period, Command P will restart it at the same frame (rather than 
  922. at the beginning as before).
  923.  
  924.    If Morph is chosen from the Animation menu when Conformal Map is 
  925. the current category, then a filmstrip will be created showing a
  926. deformation of the selected map from the identity map.
  927.  
  928.   Two new item, Show Axes Only and Show Object, have been added to 
  929. the Aspect menu. While trying to find an optimal aspect, it is often 
  930. necessary to do some experimentation, and having to wait for a complex 
  931. object to be drawn slows things down. If Show Axes Only is selected 
  932. then a mode is entered where only the axes are drawn after each aspect 
  933. change. Choosing Show Object draws the object and exits this mode. A
  934. check mark indicates which mode is currently active.
  935.  
  936.     It is now possible to change the range of the surface variables
  937. u,v (as well as the values of the various parameters) during the
  938. creation of a Morphing filmstrip. This is done by setting the eight
  939. variables uMin0, uMin1, uMax0, uMax1, vMin0, vMin1, vMax0, vMax1 
  940. in the Set Morphing... dialog. Used judiciously, this can be very
  941. useful in determining the structure of a complicated immersed
  942. surface. The idea is to keep the parameters fixed and change only
  943. the range of one of the variables, from a small strip initially to
  944. the whole domain of interest at the end. This will create a movie
  945. of the object gradually being created. (Like so many other clever
  946. features, including the previous and following ones, this was 
  947. suggested by Hermann Karcher.)
  948.  
  949.    There is a new parameter, Rotation Divisor, that can be set in the
  950. Set Number of Frames... dialog. If this is set to an integer n, then 
  951. a rotation filmstrip with N frames will only rotate 360/Nn degrees 
  952. between frames (rather than 360/N), so it will only rotate a total of 
  953. 360/n degrees (instead of 360 degrees). Of course this will produce a 
  954. sudden jump at the end of each time thru the filmstrip UNLESS the object 
  955. being displayed is invariant under a 360/n degree rotation about the 
  956. rotation axis. But if this is the case, then a smooth rotation can be 
  957. created using many fewer frames.
  958.  
  959.   Two menus have moved. The Set Categories... submenu of the Settings
  960. menu is gone and has been replaced by a Category menu in the menu bar.
  961. (One person told me that they had used 3D-Filmstrip for a whole week
  962. before discovering that it could display anything except surfaces!)
  963. Since the menu bar was getting overloaded, I have succumbed to Apple's
  964. strictures against an application having its own separate Help menu, 
  965. and, following their recommendation, I have put the items from the old
  966. Help menu at the bottom of the Balloon Help menu, at the extreme right
  967. of the menu bar.
  968.  
  969.   There is a recent addition to the Surface category---or rather to the
  970. K=-1 subcategory. The K=-1 menu is now divided in two parts by a 
  971. separator. The upper part creates surfaces of Gaussian curvature minus
  972. one from parametric representations as before, but the lower part
  973. starts with a solution of the Sine-Gordon equation, and then integrates
  974. the Gauss-Mainardi equations to find the immersed pseudo-spherical
  975. surface. If you set stereo viewing on in the View menu, you will first
  976. see the curve v=vmin created by integration, and then the curves u=const
  977. starting from each of the lattice points in the v=vmin curve.
  978.  
  979.